Improve support for GR-245 in Holux M241 module.
authorrobertl <robertl>
Sun, 4 Apr 2010 19:20:53 +0000 (19:20 +0000)
committerrobertl <robertl>
Sun, 4 Apr 2010 19:20:53 +0000 (19:20 +0000)
mtk_logger.c

index dea987f24fda73a874f16e15b918e2c2e6edfe7a..db230af8011656e6e629c3731d546be8a2c24dca 100644 (file)
@@ -381,6 +381,7 @@ static void mtk_rd_init_m241 (const char *fname) {
 
 static void mtk_rd_init(const char *fname){
     int rc;
+    char *model;
     
     port = xstrdup(fname);
     
@@ -410,13 +411,28 @@ static void mtk_rd_init(const char *fname){
         fatal(MYNAME ": Failed to set baudrate !\n");
     }
 
-    rc = do_cmd("$PMTK605*31\r\n", "PMTK705", NULL, 10);
+    rc = do_cmd("$PMTK605*31\r\n", "PMTK705,", &model, 10);
     if ( rc != 0 )
       fatal(MYNAME ": This is not a MTK based GPS ! (or is device turned off ?)\n");
 
+    // say hello to GR245 to make it display "USB PROCESSING"
+    if (strstr(model, "GR-245")) {
+      mtk_device = HOLUX_GR245; // remember we have a GR245 for mtk_rd_deinit()
+      rc |= do_cmd("$PHLX810*35\r\n", "PHLX852,", NULL, 10);
+      rc |= do_cmd("$PHLX826*30\r\n", "PHLX859*38", NULL, 10);
+      if (rc != 0)
+        dbg(2, "Greeting not successfull.\n");
+    }
+    xfree(model);
  }
 
 static void mtk_rd_deinit(void){
+    if (mtk_device == HOLUX_GR245) {
+      int rc = do_cmd("$PHLX827*31\r\n", "PHLX860*32", NULL, 10);
+      if (rc != 0)
+        dbg(2, "Goodbye not successfull.\n");
+    }
+
     dbg(3, "Closing port...\n");
     gbser_deinit(fd);
     fd = NULL;